Assigning customers to activities in marketing campaigns

ABSTRACT

Methods and systems for assigning customers to steps in marketing campaigns. An assignment module assigns and reassigns the customers to the marketing activities. An evaluation module determines a predicted goal value of the marketing campaign for each assignment. The evaluation module may be coupled to a response prediction module for making the determination. The assignment module does not reassign a customer to a marketing activity that the customer has previously been assigned to. If the assignment module identifies an assignment that leads to an optimum goal value, this assignment may be used when executing the campaign. An execution module may execute campaign steps by performing marketing activities, and a response detection module may detect responses from the customers. The responses may be used in determining subsequent steps of the campaign.

TECHNICAL FIELD

[0001] The invention relates to automated marketing campaigns.

BACKGROUND

[0002] Automated marketing campaigns may involve one or more computers controlling campaign activities directed to groups of existing and/or prospective customers. Typically, a company engages in a marketing campaign as a way of communicating specific business messages. For simplicity, all the recipients of such marketing messages will here be referred to as customers, whether or not they have an existing customer relationship with the company. The messages usually can be anything from a pure advertisement to a direct offer, which the customer may accept. Frequently, the company running a marketing campaign seeks an initial response from a customer to gauge interest in the subject of the campaign, and then intends to use the response in directing further campaign activities toward that customer.

[0003] In essence, running a marketing campaign consists of deciding which customers (i.e., which target group) should receive what offer (or communication) and thereafter executing the campaign accordingly. It is necessary to decide which customers to include in the campaign and which to leave out. Moreover, it must be decided which campaign activities should be performed in the campaign—and to which individual customers—and which campaign activities that should not be used.

[0004] In addition, companies are often interested in trying to predict the outcome of a marketing campaign before it is carried out. Software programs have therefore been developed that use statistical relations and probabilities as a way of estimating what may be the results of the marketing campaign in terms of response rate, revenue, net profit, etc. In other words, such a program may assign a particular target group to a certain campaign activity and try to predict the outcome of actually executing that campaign activity toward the target group.

[0005] Target groups, however, can be very large—on the order of several hundred thousands, or millions, of customers or more. It follows that even with a modest number of alternative campaign activities, there may be a great number of possible combinations of customer-activity assignments. It would be easy to simply assign the customers to marketing activities at random, but this approach is not very likely to result in optimum results for the marketing campaign.

[0006] One suggested way of optimizing the assignment of customers to campaign activities is the sometimes-called “Greedy” approach. This involves assigning the customers one at a time, and for each new assignment calculating the effect on the predicted result of the marketing campaign. Assume that using this process, 1,000 customers have already been assigned to four campaign activities. That is, each of the 1,000 customers presently is assigned to one of the four campaign activities. The Greedy approach then prescribes that the 1,001st customer should be assigned to that campaign activity that will most increase the predicted result of the campaign. The Greedy approach determines the predicted effects of assigning the 1,001st customer to each of the four campaign activities and thereafter selects the best one. This process is repeated for the 1,002nd customer, and so on. The Greedy approach stops when it cannot improve the predicted results without ignoring a constraint on the marketing campaign.

[0007] There are, however, drawbacks with applying the Greedy approach by itself The Greedy approach is likely to find some maximum in the predicted campaign result, because it continues to assign the customers until it cannot improve the predicted result any further. But this maximum may be only a “local” maximum, that is, it may be greater than what is predicted for all similar customer-activity assignments, but it may be less than a “global” maximum that is the best possible results than can be predicted given the particular set of customers and activities. And because the Greedy approach always moves toward increased predicted results, it may be incapable of “leaving” a local maximum, because any change in the locally optimal customer-activity assignments may lead to a decrease in the predicted value.

[0008] It has been attempted to overcome some of these disadvantages by using what is sometimes referred to as a “Taboo” search. In order to have the algorithm depart from a local maximum it has identified, it becomes necessary to allow a decrease in the goal value. A Taboo search typically records 20 or so of the most recent assignments of customers to marketing activities in a Taboo list. As long as an assignment is on the Taboo list, the Taboo search will not try that assignment again. This arrangement is used with the expectation or hope that the Taboo search will not revert to a previously visited local maximum, because the most recent assignments are “off limits” as long as they remain on the Taboo list.

[0009] But also the Taboo search may have disadvantages. Despite the use of the Taboo list, it is possible that the search algorithm will return to a previously visited local maximum, because the previous assignments are only blocked off temporarily. Revisiting an earlier local maximum does not bring the Taboo search any closer to the optimal result; rather, the search may exhibit a circular pattern of repeatedly identifying the same local maximum. The fact that the Taboo search has some tendency to return back to previous local maxima affects its ability to efficiently and quickly locate an overall, global, maximum.

SUMMARY OF THE INVENTION

[0010] The invention relates to automated marketing campaigns and may be embodied in methods, systems and instructions stored in computer-readable medium for executing inventive methods. In one general aspect, the invention provides a method of predicting values of marketing campaigns. The method comprises making an assignment of customers to marketing activities of a marketing campaign. The customers are the intended targets of the marketing campaign. The method comprises making subsequent assignments of the customers to the marketing activities, each subsequent assignment comprising a reassignment of at least one of the customers to a different marketing activity. A customer is not reassigned to a marketing activity to which it has previously been assigned. The method comprises determining a first predicted value of the marketing campaign for each assignment of the customers to the marketing activities.

[0011] In some embodiments, a constraint for the marketing campaign is defined. Assignments of the customers to the marketing activities that are inconsistent with the constraint may be rejected. The first predicted value may be used in selecting a second constraint or, when there is a plurality of constraints, in selecting a constraint to be eliminated from the marketing campaign.

[0012] In some embodiments, the assignments of the customers to the marketing activities may be stored in a binary map, wherein a flag can be set for each possible assignment.

[0013] A particular assignment of the customers to the marketing activities that has a maximum first value may be identified. The particular assignment may be used in creating a target group of customers for the marketing campaign. The marketing campaign may be executed toward the target group. Where a plurality of assignments have the same maximum first predicted value, a second predicted value may be used, and it may be determined which of the plurality of assignments has a greater second predicted value.

[0014] In a second general aspect, the invention provides a system for predicting values of marketing campaigns. The system comprises data structures comprising customer objects representing customers that are intended targets of a marketing campaign. The system comprises data structures representing marketing activities of the marketing campaign that are to be directed at the customers. The system comprises program instructions comprising an assignment module that, when executed by a processor, makes an assignment of the customer objects to the marketing activities and that makes subsequent assignments of the customer objects to the marketing activities by reassigning at least one of the customer objects to a different marketing activity. The assignment module does not reassign a customer object to a marketing activity to which the customer object has previously been assigned. The system comprises program instructions comprising an evaluation module that, when executed by a processor, determines a predicted value of the marketing campaign for each assignment of the customer objects to the marketing activities.

[0015] The system may create a target group for the marketing campaign comprising at least some of the customer objects. Some embodiments may include program instructions comprising an execution module that, when executed by a processor, executes said marketing activity toward the target group. The system may include program instructions comprising a response detection module that, when executed by a processor, detects responses to said marketing activity from customers in the target group.

[0016] Advantages of the invention may include one or more of the following. Finding superior customer-activity assignments by improved optimization. Avoiding the disadvantage of repeatedly returning to a local maximum. Enabling the optimization to seek additional maxima. Improved campaign creation by integrating predictive functions into the campaign modeling.

[0017] The details of one or more implementations of the invention are set forth in the accompanying drawings and the description below. Other features and advantages of the invention will become apparent from the description, the drawings, and the claims.

BRIEF DESCRIPTION OF THE DRAWINGS

[0018]FIG. 1 is a block diagram of a computer system containing components in accordance with the invention;

[0019]FIG. 2 is a schematic illustration of a view that may be displayed by the system in FIG. 1; and

[0020]FIG. 3 is a flow diagram of a process in accordance with the invention.

[0021] Like reference numerals in the drawing indicate like elements.

DETAILED DESCRIPTION

[0022]FIG. 1 is a block diagram of a computer system 100 containing components according to the invention. The system 100 contains a processing unit 110 with a processor 120 that, among other things, executes instructions stored in memory. Input devices 130 are operably connected to the processor 120. For example, the input devices 130 may include a mouse, a keyboard, or devices with additional functionality as will be described later. A display device 140 may be operably connected to the processor 120 and may provide video output for the system 100. For example, the display device 140 10 may display one or more screens for a user of the system 100. Output devices 150 may be operably connected to the processor 120, for example to output information to the user of the system 100 or as part of running a marketing campaign as will be described later.

[0023] The processing unit 110 may comprise a memory 160 operably connected to the processor 120. As is conventional, the memory of the processing unit 110 may include random access memory (RAM), read-only memory (ROM), or a combination of RAM and ROM. The ROM may provide non-volatile data storage for the system 100. During operation, program instructions may be loaded into the RAM such that the processor 120 can execute them.

[0024] The memory 160 may comprise customer objects 161, which are data structures 20 representing customers to which marketing campaigns may be directed. The memory 160 may comprise marketing activities 162, which represent steps of marketing campaigns that can be performed by the system 100. An assignment module 163 may be capable of assigning each of the customer objects 161 to specific ones of the marketing activities 162. By assigning a customer object to a marketing activity, the assignment module 163 provides that when the marketing activity is performed, it will be directed to that customer (and to any additional customer who may also have been assigned to the activity.) The assignment module 163 may record the assignments in a binary map 164. For example, the binary map 164 may comprise flags settable for each possible customer-activity assignment.

[0025] The memory 160 may comprise an evaluation module 165 that is capable of determining a predicted value of the marketing campaign for each assignment of the customer objects 161 to the marketing activities 162. As will be described later, the evaluation module may use different values of the marketing campaign in this regard. The evaluation module 165 may use probability relations in making its determinations. For example, the evaluation module 165 may use a response prediction module 166 to determine the predicted response from individual customers. The response prediction module may use a “response, frequency, monetary” (RFM) analysis such as that available in products from SAP AG, Walldorf (Baden), Germany. For example, the response prediction module 166 may identify one or more customers that are very unlikely to generate profitable responses. This information may be used to remove the corresponding customer object from the target group such that no assignment(s) of that customer object to any of the marketing activities is made.

[0026] The memory 160 may comprise constraint(s) 167 applicable to one or more marketing campaigns. For example, constraint(s) 167 may be defined by a user who is creating a marketing campaign in the system 100. The assignment module 163 or the evaluation module 165 may reject assignments of the customer objects 161 to the marketing activities 162 that are inconsistent with one or more of the constraints 167. The constraints 167 may be defined as upper or lower limits as applicable.

[0027] The system 100 may create target group(s) 168 from some or all of the customer objects 161. A target group 168 is a collection of those customer objects 161 to which at least one of the marketing activities 162 is to be directed. For example, if the system 100 identifies a particular assignment of the customer objects 161 to the marketing activities 162 as the most advantageous under the constraints 167, it may store the customer objects 161 as a target group 168 associated with its respective marketing activities 162.

[0028] The system 100 may include an execution module 169 that is capable of executing marketing campaigns comprising one or more marketing activities 162. The execution module 169 may execute the marketing activities 162 toward the particular customer objects included in target group(s) 168. For example, when one of the marketing activities 162 comprises sending emails to the target group(s) 168, the execution module 169 may cause the emails to be sent using output devices 150.

[0029] The system 100 may include a response detection module 170 that detects responses from the customers to the marketing activities 162. The response detection module 170 may detect the responses through input devices 130. For example, when a customer responds to a marketing activity 162 by email, the response detection module 170 may detect the email through input devices 130.

[0030] The modules and other components just described in memory 160 could be combined or separated in various manners. They may be stored in RAM, ROM, or in combinations thereof, and they need not all reside in system 100 simultaneously. For example, the modeling of a marketing campaign and the execution of the marketing campaign, both of which will be described later, may be performed on different systems.

[0031]FIG. 2 shows an exemplary view 200 that may be displayed on the display device 140 during operation of the system 100. The view 200 may be displayed when the system 100 is being used to model a marketing campaign 201. The view 200 may also be displayed when the system 100 is used for predicting the outcome of a campaign. Thus, the illustrative campaign 201 could have been modeled in the system 100 or created elsewhere and imported to the system 100, for example through input devices 130.

[0032] It can be seen that three different types of graphical elements (to be described below) have been used in the campaign 201, for example: start step 202, prediction/decision (“p/d”) step 203 and campaign step 204. The system 100 allows the user to associate the graphical elements with each other to indicate their relation. For example, the campaign 201 has arrows from one step to another to indicate the order of the steps. The system 100 may make templates of these steps available to the user in the view 200 so that the user can select one or more of them for the campaign 201, as appropriate. The system 100 may also make other steps and functions available for the user to apply to the campaign 201 that are not shown in view 200 for simplicity.

[0033] The user may begin creating the campaign 201 using the start step 202. After the start step 202, the user may place a p/d step 203, followed by a first campaign step 204. At this or another stage, the user may decide which target group is to be used for the first campaign step 204. The user may select the target group among those available in memory 160. For example, the user may decide to begin the campaign 201 with a target group consisting of all customers of record. The p/d step 203 may then predict the rate of response to the first campaign step 204 from the customers in the target group.

[0034] In an example of what the campaign 201 may include, the first campaign step 204 may include sending a letter to the customers in the target group. The result predicted in p/d step 203 may comprise the information contained in Table 1. TABLE 1 First Campaign Step: Campaign Value Letter Number of Customers in Target Group 200,000 Predicted Number of Responses 9,450 Predicted Response Rate (%) 4.73 Predicted Revenue ($) 0 Predicted Gross Profit ($) 0 Contact Costs ($) 60,000 Response Costs ($) 0 Predicted Net Profit ($) −60,000

[0035] The target group contains 200,000 customers and the p/d step 203 predicts that 9,450 of them, or 4.73%, will respond to this type of letter. This response rate may have been determined using the response prediction module 166. In this example, the letter seeks a response from the customers indicating that they are interested in receiving further marketing material and/or offers (which will be included in subsequent campaign steps). The predicted revenue from the first campaign step 204 alone may therefore be zero. The contact costs refers to the cost in sending out the letters. This may be a value that the user enters into the system 100 and in this example it has been set at $60,000. Response costs will be described below but do not apply to the first campaign step in this example and are therefore set to zero. Accordingly, the predicted net “profit” from the first campaign step 204 is minus $60,000. Here, the p/d step 203 comprises predicting the values of the campaign 201 shown in Table 1 when all of the customers in the target group were subjected to the campaign step 204. Thus, the “decision” made in p/d step 203 was to assign all of the customers to the same first campaign step 204. It will be described below how a p/d step may involve deciding to which of several possible campaign steps a customer should be assigned.

[0036] A response collection step 205 may allow the system 100 to collect the received responses. For example, responses may be input to the system 100 using input devices 130. It is possible that customers will respond over a period of time, and the response collection 205 may for example be done continuously over that time period or at intervals or at some time prior to execution of the next step in the campaign 201.

[0037] The p/d step 206 evaluates the received responses and predicts the results of assigning the responding customers to one of the campaign steps 207, 208 and 209. In this example, campaign step 207 may involve mailing the company's shopping catalog to a target group; campaign step 208 may involve mailing the company's brochure to the target group; and campaign step 209 may involve emailing an offer to the target group. To predict the results of these campaign steps, the costs of executing the respective steps per addressed customer must be known. Table 2 below lists exemplary values that may be used in p/d step 206. TABLE 2 Camp. Step 207 Camp. Step 208 Camp. Step 209 Mail Catalog Mail Brochure Email Offer Predicted 115 95 85 Revenue per Response ($) Profit per 78 59 65 Response ($) Cost per 3 2.50 0.20 Contact ($) Cost per 0 0 8.50 Response ($) Response MAIL01 MAIL02 EMAIL01 Model Default 13 15 14 Rate (%)

[0038] For mailing the catalog (campaign step 207), the predicted revenue per response is $115. This average may be derived from the company's past sales experiences and may be a variable settable by the user. For example, the company may know that when customers place orders after receiving the company's catalog in the mail, the average buying customer places a $115 order. Of the $115 revenue from an average response, the profit is $78. From this should be deducted the cost of the catalog and of shipping the catalog, here $3, which is labeled cost per contact. Thus, the predicted net profit for the average response is $75. The two other campaign steps have corresponding values, resulting in a predicted profit per response of $56.50 for mailing the brochure (campaign step 208) and $56.30 for sending the offer by email. In the latter calculation, a cost per response of $8.50 has been deducted from the profit per response. This may reflect a discount of the sales price that is given to the recipients of the email offer, which discount accordingly decreases the predicted net profit per response by an equal amount. Now, to determine the overall profit, it should be taken into account how many responses can be expected from the target group.

[0039] Table 2 lists two ways of predicting the rate of responses. Response model means that the p/d step 206 involves using the response prediction module 166 to obtain a prediction based on the individual customers in the target group. Thus, the response rate predicted using this alternative may differ between target groups. Here, the illustrative response models used by the response prediction module 166 for the campaign steps 207, 208 and 209 are called MAIL01, MAIL02 and EMAIL01, respectively. The default rate, in contrast, which is listed below the response model in Table 2, may be an average response rate concluded without regard to the particular target groups. For example, the company may know from prior experiences that the average response rates for mailing catalogs is 8.5%, and that the average response rates for mailing brochures and sending offers by email are 6.3% and 4.5%, respectively. The default rates may be settable by the user. If the response model is unable to make a prediction for a customer, the default rate will instead be used for that customer.

[0040] It now becomes desirable to specify the marketing campaign further by assigning customers to specific ones of the alternative second campaign steps 207, 208 and 209. The relevant customers for the second campaign step are those that were predicted to respond to the first marketing step. Table 1 shows that 9,450 customers were predicted to respond.

[0041] The assignment module 163 may use an optimizing algorithm for this purpose. The algorithm may for example proceed by assigning all of the customers to various ones of the available campaign steps. For each assignment, the predicted value of the campaign resulting from the assignment is determined. It is also evaluated whether each assignment is consistent with the constraints 167 on the marketing campaign, if there are any. As long as the new assignments improve the predicted result, i.e. the goal value(s), the algorithm has not yet identified a maximum in the predicted result. Once all customers have been assigned to specific campaign steps, the algorithm may reassign individual customers to different campaign steps in an attempt to further increase the predicted goal value of the campaign and perhaps identify a global maximum of the goal value.

[0042] Eventually, the algorithm may find a maximum, potentially a local maximum, which is here referred to as a best goal value. Having found a best goal value, the algorithm may then continue assigning and reassigning customers (without reassigning a customer to an old marketing activity) in an attempt to find a higher, perhaps global, maximum. During this search phase, the algorithm may tolerate a decrease in the goal value.

[0043] The assignment module 163 may use different predicted values of the marketing campaign. For example, one or more of the costs of the campaign, the profits of the campaign, or the number of customers responding to the campaign may be used. In this regard, relative terms such as “increase,” “maximum” etc. should be understood in context of the goal value that is being used. The object of the algorithm is to improve the goal value by making reassignments. Some goal values should be decreased to improve them. Thus, optimizing a goal value may involve minimizing it.

[0044] The algorithm does not reassign a customer to a campaign step that the customer has previously been assigned to. Each assignment of a customer to a campaign step may be recorded in a suitable file, such as the binary map 164. For example, the binary map 164 may be an object representing a two-dimensional array of flags: one dimension is the customers and the other is the marketing activities. The possible assignments of 200,000 customers to five marketing activities then would require the object to have one million settable flags. The object may have suitable operations defined for it, such as for setting and reading individual flags.

[0045] When a customer is assigned to one of the campaign steps, a flag corresponding to that assignment may be set in the binary map 164. By referring to the set flags in binary map 164 it can be ensured that no customer is reassigned to a campaign step that the customer has previously been assigned to.

[0046] It is, however, possible that the algorithm will not find a higher maximum after “leaving” an earlier found maximum. The algorithm will come to a halt upon the occurrence of some interrupting event, such as a stop command from the system 100 or the user. For example, the algorithm may be terminated when the most recent 10,000 customer-activity reassignments have not improved the best goal value.

[0047] One may determine the particular customer-activity assignments corresponding to the best goal value by reversing all assignments made since finding the most recent best goal value. It may therefore be desirable to record the assignments in a list as they are being made after finding a best goal value. The list may be stored in the memory 160. The algorithm may be configured to terminate the search if the best goal value has not been improved after a certain number of assignments. The assignments can then be reversed back to the best goal value using the list. In contrast, should the algorithm find a better goal value that is consistent with the constraint(s) 167, there will be no need to return to the previous, less good, goal value and it may then be desirable to purge the list. After termination, the best assignment of the customers to the campaign steps may be stored as a final assignment such that the marketing campaign can be executed according to that assignment.

[0048] Using the best found assignment of customers to campaign steps it is possible to predict an overall result of the marketing campaign after the first and second campaign steps. Table 3 shows the marketing campaign prediction of Table 1 updated with the values discussed above. TABLE 3 First Second Campaign Step: Total Campaign Campaign Total 1st and 2nd Value Step: Letter Catalog Brochure Email 2nd Step Steps Number of 200,000 5,500 2,350 1,600 9,450 Customers in Target Group Predicted 9,450 717 336 224 687 Number of Responses Predicted 4.73 13.05 14.3 14 7.3 Response Rate (%) Predicted 0 82,455 31,929 19,040 133,424 133,424 Revenue ($) Predicted Gross 0 55,926 19,824 14,560 90,310 90,310 Profit ($) Contact Costs 60,000 16,500 5,875 320 22,695 82695 ($) Response Costs 0 0 0 1904 1904 1904 ($) Predicted Net −60,000 39,426 13,949 12,336 65,711 5,711 Profit ($)

[0049] Thus, the above assignment of customers to the respective campaign steps resulted in 5,500 customers being assigned to campaign step 207, while 2,350 customers were assigned to campaign step 208, and 1,600 customers were assigned to campaign step 209. This resulted in the predicted net profits for the respective second campaign steps shown in the last row of Table 3. The predicted total net profit for the campaign consisting of the first and second campaign steps was $5,711.

[0050] It is possible that the algorithm will assign no customer to a particular campaign step. This suggests that based on the given set of addressable customers the campaign step should not be performed.

[0051] However, a maximum goal value may correspond to several different assignments of the customer objects to the marketing activities. One way to handle such a situation involves the evaluation module using a second goal value in addition to the one currently being used. The assignment module 163 may then select the customer-activity assignment that is predicted to yield the best second goal value.

[0052] Additional campaign steps may follow in the marketing campaign 201. For example, FIG. 2 shows that the responses from campaign step 208 are collected in step 210, which is followed by a p/d step 211. Response collection steps and additional campaign steps may follow after campaign steps 207 or 209 but have been omitted in FIG. 2 for clarity.

[0053] Prediction/decision step 211 may involve deciding which of campaign steps 212 and 213 should be directed at the customers who responded to campaign step 208. The assignment of customers to campaign steps may be done as described above with regard to the p/d step 206. Here, campaign step 212 may be a follow up letter directed to the customers who responded to the brochure received by mail. Campaign step 213 may likewise be a follow-up email. Additional response collection steps and/or campaign steps may follow upon any of the campaign steps 212 and 213, or upon any response collection or campaign steps subsequent to the campaign steps 207 or 209. The graphical illustration of the marketing campaign 201 in view 200 may conclude with a “stop” symbol (not shown) similar to the start symbol 202.

[0054] The predicted results may be used for several purposes. For example, the predicted profits for individual marketing activities may be analyzed. One characteristic that may be of interest is which marketing activities have relatively little impact on the outcome of the marketing campaign. If one of the marketing activities in Table 3, say the emailing step (209), yields a relatively small predicted profit compared to the other activities, it may be desirable to omit this marketing activity from the marketing campaign. This may conveniently be done by setting a constraint 167 that the total number of customers assigned to the emailing step must be zero. As another example, analysis of the predicted profits (or another predicted goal value) may suggest a fruitful way of expanding the campaign. Assume, for example, that a constraint for the catalog step in Table 3 limited the total number of catalogs mailed to 5,500. According to the prediction, increasing that number should yield an even higher net profit for that marketing activity. It may therefore be decided, in view of the predicted results, to alter or remove one or more constraints on the marketing campaign.

[0055] Moreover, the entire campaign may be simulated by doing successive predictions of the individual steps. Using the response prediction module 166 or the default rate, it can be predicted how many customers of the initial target group are expected to respond to the first campaign step 204. It is then possible to build a sample target group by selecting customers from the initial target group according to their individual response probability. Preferably, the sample target group is selected such that it contains exactly the number of customers that are predicted to respond to the first campaign step. The sample target group may be used to predict the number of responses from a second campaign step, say campaign step 208, similarly to the prediction described above.

[0056] An exemplary operation of the system 100 will now be described with reference also to FIG. 3. In step 301, the system 100 receives a request to initiate the modules and processes that are involved in assigning the customers to marketing activities in a marketing campaign. Such a request may be given by a user of the system 100, for example through input devices 130. It is assumed in this description that the system 100 has access to the information necessary to carry out the assignments and to predict the resulting outcomes of the marketing campaign. For example, the marketing campaign may previously have been modeled on the system 100 using graphical symbols in view 200, in analogy with the description of FIG. 2 above.

[0057] Step 302 comprises the overall process run by the assignment module 163 to assign the customer objects to the marketing activities. This process may involve several separate steps, as will be described. The assignment module 163 may take constraint(s) 167 into account in step 303. For example, a constraint on the assignments may comprise that a certain customer should only be contacted by mail. This constraint may preclude the assignment module from assigning that customer object to a marketing activity that involves contacting the customer in a way other than by mail. As another example, a constraint may prescribe that any customer for which the system 100 does not have a telephone number stored should not be assigned to a campaign step that involves calling the customer.

[0058] The assignment module 163 may trigger the response prediction module 166 in step 304 to predict the responses that may be received, using information known about the individual customers. In step 305, the evaluation module 165 determines a first predicted value of the marketing campaign based on the predicted response(s) for a particular assignment of the customers to the marketing activities. For example, the first predicted value may be a goal value of the campaign such as its predicted net profit. Thus, step 305 may involve the evaluation module 165 predicting the net profit of the marketing campaign for the current assignment of customers to the marketing activities.

[0059] The evaluation module 165 in step 306 may take constraint(s) 167 into account in this determination and reject the particular assignment if it is not consistent with one or more of the constraints. The constraint may be one or more of a limitation on the marketing campaign, a limitation on the marketing activities, and a predicted number of customers responding to the campaign. For example, the marketing campaign may have constraints as to the total number of customers to be contacted in the campaign or the total number of customers to be contacted in any campaign step, which may be a limitation on the number of offers that are to be made in a campaign step. Additional examples of constraints include one or more of a budget for the marketing campaign, the predicted revenue, profits, or costs. Constraints may also be defined as a limitation on the communication channel (e.g., email or telephone) through which the customers will be contacted.

[0060] The assignment module may continue assigning and reassigning the customers to the marketing activities in step 302 consistent with the constraint(s) 167 as long as the first predicted value can be further improved. For each reassignment of the customers, the evaluation module 165 may determine an updated first predicted value (step 305). However, the assignment module 163 does not reassign a customer to a marketing activity that the customer has previously been assigned to. As part of step 302, the assignment module 163 may store each customer-activity assignment in the binary map 164, and refer to the binary map 164 to make sure that a customer is not reassigned to an old marketing activity.

[0061] The assignment module ceases to perform step 302 upon the occurrence of some interrupting event, such as determining that the most recent, say, 10,000 reassignments of customers have not improved the goal value. The current assignment of the customers may then be considered the final assignment and the customers may be stored as target group 168 in step 307. If the first campaign step should involve several possible marketing activities (as did the exemplary second campaign step in FIG. 2), the customers may be stored in separate target groups 168.

[0062] The system 100 executes the first campaign step in step 308. This may involve the assignment module 163 triggering the execution module 169 to perform the marketing activity/-ies of the first campaign step. For example, the execution module 169 may cause the output devices to send emails to selected customers in step 309. If the first step includes other marketing activities, such as sending letters to the customers, the execution module 169 may cause the letters to be automatically addressed to the customers and printed using the output devices 150. Other marketing activities may involve contacting the customers by telephone from a call center. The output devices 150 may be operably connected to the call center such that the execution module 169 may provide the call center with the names, telephone numbers and other relevant information about the customers that are to be contacted though the call center.

[0063] As discussed in the earlier examples, it is expected that customers will respond to the first marketing step, perhaps by placing an order with the company or by simply acknowledging their interest using a preformatted reply. However, the time during which the customers respond, and the way they communicate their response, may vary significantly. This is indicated by the dashed process flow from step 309 of performing the marketing activity to step 310 of receiving the customer responses. For example, customers may respond by emails that are received through the input devices 130. Another example is that a customer may respond through a website controlled by the company which channels the customer response to input devices 130. Additional ways for customers to respond include by letter, by telephone or fax, or by a personal contact with a company representative. In these examples, the customer response may be provided to system 100 in step 310 by entering the response information using input devices 130. For example, a visit activity report by the company representative may be typed in on a keyboard or provided as a data file from another computer.

[0064] In step 311, the response detection module 170 detects the received response(s). The response detection module may correlate the received responses with the corresponding customer objects, which were used in executing the first campaign step. The detection of responses may also trigger the execution of a second campaign step (to be described below) toward the responding customers. It is possible to direct a subsequent campaign step toward customers that did not respond to the first campaign step, for example in the form of a reminder.

[0065] In preparation for a second campaign step, the assignment module 163 in step 312 may assign the responding customers to marketing activities of the second campaign step. This may be carried out substantially as in step 302 above, with successive assignments and reassignments of customers while minding the constraints on the marketing campaign. Step 312 may involve the same first predicted value (e.g., predicted net profit) as the first campaign step or it may involve a different value. Similar to step 302 above, the assignment module 163 does not reassign a customer to a marketing activity that the customer has previously been assigned to, for example using the binary map 164 to record each assignment.

[0066] With the assignment module 163 having arrived at a final assignment of the customers in step 312, the execution module 169 in step 313 executes the second campaign step. Similar to the description of the first campaign step above, this may involve performing marketing activities through output devices 150 in step 314. For clarity, FIG. 3 does not show any steps subsequent to step 314, but it will be understood that the marketing campaign may continue along the lines described with regard to the first campaign step. That is, following the marketing activity/-ies being performed in step 314, there may be a subsequent reception and detection of customer responses, possibly followed by assignment of customers to marketing activities for a third campaign step, and so on.

[0067] A number of embodiments of the invention have been described. Nevertheless, it will be understood that various modifications may be made without departing from the spirit and scope of the invention. Accordingly, other embodiments are within the scope of the following claims. 

We claim:
 1. A method of predicting values of marketing campaigns, the method comprising: making an assignment of customers to marketing activities of a marketing campaign, the customers being intended targets of the marketing campaign; making subsequent assignments of the customers to the marketing activities, each subsequent assignment comprising a reassignment of at least one of the customers to a different marketing activity, wherein a customer is not reassigned to a marketing activity to which it has previously been assigned; and determining a first predicted value of the marketing campaign for each assignment of the customers to the marketing activities.
 2. The method of claim 1, wherein the first predicted value is selected from the group consisting of predicted costs of the marketing campaign, predicted profits of the marketing campaign, a predicted number of customers responding to the marketing activities, and combinations thereof.
 3. The method of claim 1, wherein the first predicted value is a predicted number of customers responding to the marketing activities, wherein determining the predicted number comprises at least in part using a response prediction model.
 4. The method of claim 1, further comprising defining a constraint for the marketing campaign and rejecting assignments of the customers to the marketing activities that are inconsistent with the constraint.
 5. The method of claim 4, wherein the constraint is selected from the group consisting of a limitation on the marketing campaign, a limitation on the marketing activities, a predicted number of customers responding to the marketing activities, and combinations thereof.
 6. The method of claim 4, wherein the constraint is selected from the group consisting of marketing campaign budget, predicted marketing campaign revenue, predicted marketing campaign profits, predicted marketing campaign costs, and combinations thereof.
 7. The method of claim 4, wherein a marketing activity comprises an offer to be made to at least some of the customers through a communication channel, wherein the constraint is one selected from the group consisting of a limitation on the communication channel, a limitation on the offer, and combinations thereof.
 8. The method of claim 4, wherein the constraint comprises that a particular customer not be assigned to a particular marketing activity.
 9. The method of claim 4, further comprising using the first predicted value for at least one of the assignments to select a second constraint for a marketing activity.
 10. The method of claim 4, wherein there are a plurality of constraints for the marketing campaign, further comprising using the first predicted value for at least one of the assignments to select one of the constraints to be eliminated from the marketing campaign.
 11. The method of claim 1, further comprising identifying the marketing activity having least impact on the first predicted value.
 12. The method of claim 1, further comprising removing the assignment of a customer from all marketing activities such that the customer is not assigned to any of the marketing activities.
 13. The method of claim 1, further comprising storing the assignments of the customers to the marketing activities in a binary map, wherein a flag can be set in the binary map for each possible assignment of the customers to the marketing activities.
 14. The method of claim 1, further comprising identifying a particular assignment of the customers to the marketing activities that has a maximum first predicted value.
 15. The method of claim 14, further comprising using the particular assignment to create a target group of customers.
 16. The method of claim 15, further comprising executing said marketing activity toward the target group.
 17. The method of claim 14, wherein a plurality of the assignments of the customers to the marketing activities have the maximum first predicted value, further comprising identifying a second predicted value of the marketing campaign and determining which of the plurality of assignments has a greater second predicted value.
 18. A system for predicting values of marketing campaigns, the system comprising: data structures comprising customer objects representing customers that are intended targets of a marketing campaign; data structures representing marketing activities of the marketing campaign that are to be directed at the customers; program instructions comprising an assignment module that, when executed by a processor, makes an assignment of the customer objects to the marketing activities and that makes subsequent assignments of the customer objects to the marketing activities by reassigning at least one of the customer objects to a different marketing activity, wherein the assignment module does not reassign a customer object to a marketing activity to which the customer object has previously been assigned; and program instructions comprising an evaluation module that, when executed by a processor, determines a predicted value of the marketing campaign for each assignment of the customer objects to the marketing activities.
 19. The system of claim 18, further comprising program instructions comprising a response prediction module that, when executed by a processor, predicts a number of customers that will respond to the marketing activities.
 20. The system of claim 18, further comprising a data structure representing a constraint on the marketing campaign, wherein the assignment module will reject assignments of the customer objects to the marketing activities that are inconsistent with the constraint.
 21. The system of claim 18, further comprising a binary map for storing the assignments of the customer objects to the marketing activities, wherein a flag can be set in the binary map for each possible assignment of the customer objects to the marketing activities.
 22. The system of claim 18, wherein the system creates a target group comprising at least some of the customer objects, wherein at least one of the marketing activities is to be directed at the target group.
 23. The system of claim 18, further comprising program instructions comprising an execution module that, when executed by a processor, executes said marketing activity toward the target group.
 24. The system of claim 23, further comprising program instructions comprising a response detection module that, when executed by a processor, detects responses to said marketing activity from the customers in the target group.
 25. Computer-readable medium with program instructions stored thereon that when executed perform the following functions for predicting values of marketing campaigns: makes an assignment of customers to marketing activities of a marketing campaign, the customers being intended targets of the marketing campaign; makes subsequent assignments of the customers to the marketing activities, each subsequent assignment comprising a reassignment of at least one of the customers to a different marketing activity, wherein a customer is not reassigned to a marketing activity to which it has previously been assigned; and determines a first predicted value of the marketing campaign for each assignment of the customers to the marketing activities.
 26. The medium of claim 25, wherein the first predicted value is a predicted number of customers responding to the marketing activities, wherein determining the predicted number comprises at least in part using a response prediction model.
 27. The medium of claim 25, further comprising: defines a constraint for the marketing campaign and rejects assignments of the customers to the marketing activities that are inconsistent with the constraint.
 28. The medium of claim 25, further comprising: stores the assignments of the customers to the marketing activities in a binary map, wherein a flag can be set in the binary map for each possible assignment of the customers to the marketing activities.
 29. The medium of claim 25, further comprising: creates a target group of customers.
 30. The medium of claim 25, further comprising: executes said marketing activity toward the target group.
 31. The medium of claim 25, further comprising: detects responses to said marketing activity from the customers in the target group. 